predicate logic rules